using System;
using System.ComponentModel;
using System.Collections.Generic;

namespace Sinacor.Servico.Bovespa.Ordens.Service.ServiceImplementation.Translator
{
	public class TranslateBetweenPreBoletoAndConsultarPreBoletoAnaliticoResponse
	{
		public static DataContract.Response.ConsultarPreBoletoAnaliticoResponse TranslatePreBoletoToConsultarPreBoletoAnaliticoResponse(BusinessEntity.PreBoleto from)
		{
			if (from == null) return null;

			DataContract.Response.ConsultarPreBoletoAnaliticoResponse to = new DataContract.Response.ConsultarPreBoletoAnaliticoResponse();
			to.NumeroPreBoleto = from.Numero;
            to.NumeroOrdem = from.Ordem.NumeroOrdem.Value;
            to.DataOrdem = from.Ordem.DataOrdem.Value;
            to.NumeroOrdemSequencia = from.Ordem.NumeroOrdemSubSequencia.Value;
			
			to.DataPregao = from.DataPregao;
			to.QuantidadeNegocio = from.QuantidadeNegocio;
			to.Preco = from.Preco;
			to.ContraParte = from.ContraParte;
			to.Cambio = from.Cambio;
			to.Volume = from.Volume;
            to.TipoEstrategia = (DataContract.Enum.TipoEstrategia?) from.TipoEstrategia;
            to.TipoCasamento = (DataContract.Enum.TipoCasamento)from.TipoCasamento;
            to.QuantidadeCasada = from.Ordem.QuantidadeCasada.Value;
            to.IndicadorDesprezaSaldo = from.Ordem.IndicadorDesprezaSaldo;
            to.TipoSituacaoCasamento = (DataContract.Enum.TipoSituacaoCasamento?)from.TipoSituacaoCasamento;
			return to;
		}

		public static List<DataContract.Response.ConsultarPreBoletoAnaliticoResponse> TranslatePreBoletoCollectionToPreBoletoAnaliticoResponseCollection(List<BusinessEntity.PreBoleto> from)
		{
			List<DataContract.Response.ConsultarPreBoletoAnaliticoResponse> to = null;

			if (from != null)
			{
				to = new List<DataContract.Response.ConsultarPreBoletoAnaliticoResponse>();
				foreach (BusinessEntity.PreBoleto preBoleto in from)
				{
					to.Add(TranslateBetweenPreBoletoAndConsultarPreBoletoAnaliticoResponse.TranslatePreBoletoToConsultarPreBoletoAnaliticoResponse(preBoleto));
				}
			}

			return to;
		}
	}
}

